package com.tzm.lucene.test02;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;

import java.io.IOException;

public class AnalyzerTest02 {

    public static void main(String[] args) throws IOException {

        // 1. 创建一个Analyzer对象, StandardAnalyzer对象
        Analyzer analyzer = new CJKAnalyzer();
        // 2. 使用分析器对象的TokenStream方法获得一个TokenStream对象
        TokenStream tokenStream = analyzer.tokenStream("",
                "Lucene是apache软件基金会4 jakarta项目组的一个子项目，是一个开放源代码的全文检索引擎工具包，但它不是一个完整的全文检索引擎，而是一个全文检索引擎的架构，提供了完整的");
        // 3. 向TokenStream对象中设置一个引用, 相当于一个指针
        CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class);
        // 4. 调用TokenStream对象的reset方法。如果不调用会抛异常
        tokenStream.reset();
        //  5. 使用while循环遍历TokenStream对象
        while (tokenStream.incrementToken()) {
            System.out.println(charTermAttribute.toString());
        }
        // 6. 关闭TokenStream对象
        tokenStream.close();
    }
}
